home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / mac / Premiere 4.2 SDK r3 Mac / Examples / Projects / Video Noise / Noise.c next >
Text File  |  1996-01-25  |  2KB  |  57 lines

  1. //========================================================================================
  2. //
  3. // Noise.c - Simulate video noise by mucking the low bits of the channel values.
  4. //
  5. // Written by Randy Ubillos and Bryan K. "Beaker" Ressler.
  6. //
  7. // Copyright ⌐ 1996, Adobe Systems Incorporated, all rights reserved worldwide.
  8. //
  9. // Version    1.00    9/12/94        Original version.
  10. // Version  1.02    10/8/95     Updated for 4.2 and CW7.
  11. //
  12. //========================================================================================
  13.  
  14. //========================================================================================
  15. // Prototypes
  16. //========================================================================================
  17. void Noise (unsigned char *src, unsigned char *dst, short height, short rowBytes, 
  18.             unsigned long mask);
  19.  
  20. //========================================================================================
  21. // Routine to add noise to an image. This is a "C" language version of the assembly code
  22. // in "Noise.a".
  23. //========================================================================================
  24. void Noise (unsigned char *src, unsigned char *dst, short height, short rowBytes, 
  25.             unsigned long mask)
  26. {
  27.     short    h, v, value;
  28.     long    rowLongs = rowBytes / 4;
  29.     
  30.     for (v = 0; v < height; v++) {
  31.         for (h = 0; h < rowLongs; h++) {
  32.             *dst++ = *src++;
  33.             
  34.             value = *src++;
  35.             if (value >= 0x08 && value <= 0xF8) {
  36.                 value ^= mask & 0xFF;
  37.                 mask = (mask << 24) + (mask >> 8);
  38.             }
  39.             *dst++ = value;
  40.  
  41.             value = *src++;
  42.             if (value >= 0x08 && value <= 0xF8) {
  43.                 value ^= mask & 0xFF;
  44.                 mask = (mask << 24) + (mask >> 8);
  45.             }
  46.             *dst++ = value;
  47.  
  48.             value = *src++;
  49.             if (value >= 0x08 && value <= 0xF8) {
  50.                 value ^= mask & 0xFF;
  51.                 mask = (mask << 24) + (mask >> 8);
  52.             }
  53.             *dst++ = value;
  54.         }
  55.     }
  56. }
  57.